package com.uzai.console.vo.sop.soptask;

import com.uzai.common.enums.DeviceTypeEnum;
import com.uzai.console.vo.user.SysTagVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.List;

/**
 * @Auther: liuqi
 * @Date: 2021/8/10 14:58
 * @Description:
 */
@Data
@ApiModel("返回SOP任务详情")
public class SopTaskVo {
    @ApiModelProperty("主键id")
    private Long id;

    @ApiModelProperty("任务名称")
    private String name;

    @ApiModelProperty("状态(-1-初始化；1-进行中；2-已完成；3-已终止)")
    private Integer status;

    @ApiModelProperty("状态(-1-初始化；1-进行中；2-已完成；3-已终止)")
    private String statusName;

    @ApiModelProperty("类型（1-查券未下单；2-未下单；3-红包未领取）")
    private Integer type;

    @ApiModelProperty("类型（1-查券未下单；2-未下单；3-红包未领取）")
    private String typeName;

    @ApiModelProperty("创建时间")
    private Integer createTime;

    /**
     * 查询时间(订单为天数)
     */
    @ApiModelProperty("查询时间最小时间(订单为天数；红包为小时)")
    private Integer queryTime;

    /**
     * 查询红包类型列表
     */
    @ApiModelProperty("红包类型 0注册赠送 1首次查券赠送 2首次下单赠送 3用户申请提现 4公众号关注 5人工发送")
    private List<Integer> redPacketTypeList;

    /**
     * 机器人类型
     */
    @ApiModelProperty("机器人类型")
    private String deviceType;

    /**
     * 查询红包类型列表
     */
    @ApiModelProperty("机器人唯一id列表")
    private List<Long> deviceUniqueIdList;

    /**
     * 是否重新发送红包
     */
    @ApiModelProperty("是否重新发送红包(0否;1-是)")
    private Integer resend;

    /**
     * 修改会员标签
     */
    @ApiModelProperty("修改会员标签列表")
    private List<SysTagVo> userTagsList;

    /**
     * 修改自定义标签列表
     */
    @ApiModelProperty("修改自定义标签列表")
    private List<String> tagsList;

    /**
     * 修改备注
     */
    @ApiModelProperty("修改备注")
    private String remark;

    /**
     * 发送消息
     */
    @ApiModelProperty("发送消息")
    private String msg;

    /**
     * 发送频率(每隔几秒发送一条)
     */
    @ApiModelProperty("发送频率(每隔几秒发送一条)")
    private Integer rate;

    /**
     * 免骚扰时间间隔(以小时为单位)
     */
    @ApiModelProperty("免骚扰时间间隔(以小时为单位)")
    private Integer busyTimeInterval;

    /**
     * 开始限制时间（HH:mm）
     */
    @ApiModelProperty("开始限制时间（HH:mm）")
    private String limitTimeStart;

    /**
     * 结束限制时间（HH:mm）
     */
    @ApiModelProperty("结束限制时间（HH:mm）")
    private String limitTimeEnd;

    /**
     * 任务有效时间（到这个时间自动停止）
     */
    @ApiModelProperty("任务有效时间（到这个时间自动停止）")
    private Integer exptime;

    /**
     * 任务间隔秒数
     */
    @ApiModelProperty("任务间隔时间(天数)")
    private Integer interval;

    public String getDeviceType() {
        if(StringUtils.isBlank(deviceType)){
            deviceType = DeviceTypeEnum.DT_PC_WECHAT.getKey();
        }
        return deviceType;
    }

    public void setDeviceType(String deviceType) {
        this.deviceType = deviceType;
    }
}
